/*******************************************************************************
 * Copyright (c) 2011 Jovansonlee B. Cesar.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the GNU Public License v2.0
 * which accompanies this distribution, and is available at
 * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
 * 
 * Contributors:
 *     Jovansonlee B. Cesar - initial API and implementation
 ******************************************************************************/
package com.ivanceras.client;

import java.util.HashMap;

import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
import com.ivanceras.shared.bo.Ad_column;
import com.ivanceras.shared.bo.Ad_tab;
import com.ivanceras.shared.bo.Ad_table;
import com.ivanceras.shared.bo.Ad_window;
import com.ivanceras.shared.db.DAO;
import com.ivanceras.shared.db.Filter;
import com.ivanceras.shared.db.Order;
import com.ivanceras.shared.db.SerializableDAO;
import com.ivanceras.shared.db.SerializableFilter;
import com.ivanceras.shared.exception.IvancerasServiceException;

/**
 * The client side stub for the RPC service.
 */
@RemoteServiceRelativePath("data")
public interface DataService extends RemoteService {
	Ad_window[] retrieveWindowList() throws IvancerasServiceException;

	Ad_tab[] retriveTabList(Ad_window window) throws IvancerasServiceException;
	
	SerializableDAO[] retrieveTableData(Ad_table table, Integer page, Integer itemPerPage, Order order, SerializableFilter filters) throws IvancerasServiceException;

	Boolean importDaoXmlFromUrl(String httpurl)
			throws IvancerasServiceException;

	HashMap<String, Integer> getTableList(String xmlurl)
			throws IvancerasServiceException;

	SerializableDAO[] retrieveChrildrenTableData(Ad_table parent,
			Ad_table table, Integer page, Integer itemPerPage, Order order,
			SerializableFilter sfilter) throws IvancerasServiceException;

	HashMap<String, String> retrieveListData(Ad_column column)
			throws IvancerasServiceException;

	String retrieveDataName(Ad_column column, String value) throws IvancerasServiceException;
}
